let obj = {}
let newVal = ''
// 把Object上的属性转移到了 Reflect上面
Reflect.defineProperty(obj, 'name', {
  get() {
    return newVal
  },
  set(val) {
    console.log('set');
    newVal = val
  }
})

obj.name = 'es'
console.log(obj.name);

// 修改object.defineProperty 的返回值
try {
  Object.defineProperty(obj)
}catch(e) {
  console.log(e);
}

// 改成
if(Reflect.defineProperty()){ // boolean

}else {

}

// 让Object操作变成函数行为
console.log('assign' in Object);// 命令式操作
console.log(Reflect.has(Object, 'assign')); // 函数式操作

//Reflect方法和Proxy 方法一一对应
